A major problem with such advanced technology computer systems is the need to provide data transfer instructions which permit the loading from memory to machine registers and the storing from machine registers to memory of data fields of multiple lengths. U.S. Pat. No. 4,745,547, issued on May 17, 1988 to Buchholz et al. assigned to the same assignee as this patent application teaches the need for this function in vector processing.
One way of accomplishing this is through the use of block transfers as in Input/Output type operations. U.S. Pat. No. 4,370,712 issued to Johnson et al. on Jan. 25, 1983, and U.S. Pat. No. 4,438,493 issued to Cushing et al. on Mar. 20, 1984, teach block transfer techniques. The overhead of such operations, however, makes them not as useful for intraprocessor transfers as for I/O transfers of large blocks of data.
A simple, special purpose method of data transfer is taught by Whipple, et al. in U.S. Pat. No. 4,716,545 issued on Dec. 29, 1987. This technique is special purpose in that it is restricted to a doubleword read or write. A brute-force method of implementing the Whipple, et al. doubleword transfer is taught by Johnson et al. in U.S. Pat. No. 4,361,869 issued on Nov. 30, 1982. This approach doubles the bus width, thereby speeding the transfer between memory and processor. Unfortunately, this approach does not provide great flexibility in the use of variable width fields.
A much more flexible approach is taught in U.S. Pat. No. 4,491,908 issued to Woods et al. on Jan. 1, 1985. This technique transfers up to four (4) words by specifying the operand length in one field of the transfer instruction. A microprogram is used to decode this field and make the actual transfer. However, the implementation in firmware, though flexible, is inherently slow.
Another means of decoding the variable operand length field is by table look-up as taught in IBM Technical Disclosure Bulletin, Volume 19, No. 1, dated June, 1976, by Plant et al. IBM Technical Disclosure Bulletin, Volume 25, No. 4, dated September, 1982, by Nair et al. describes the problems associated with cache management when doing multiple word transfers.